add fedora 39 to ci (#1211)
authortsteven4 <13596209+tsteven4@users.noreply.github.com>
Thu, 9 Nov 2023 01:40:36 +0000 (18:40 -0700)
committerGitHub <noreply@github.com>
Thu, 9 Nov 2023 01:40:36 +0000 (18:40 -0700)
* add fedora 39 to ci

* retire qAsConst for std::as_const

21 files changed:
.github/workflows/fedora.yml
bend.cc
duplicate.cc
exif.cc
garmin.cc
garmin_txt.cc
gpx.cc
interpolate.cc
lowranceusr.cc
mkshort.cc
position.cc
radius.cc
resample.cc
route.cc
tools/Dockerfile_f39 [new file with mode: 0644]
trackfilter.cc
unicsv.cc
util.cc
vecs.cc
waypt.cc
xcsv.cc

index 76543d9d53f5470250c34231a77787d67e053870..ce8187ab781bc63c210d9ff497d8f0ab951e42d5 100644 (file)
@@ -24,6 +24,10 @@ jobs:
             CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt5'
           - IMAGE: '38'
             CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt6'
+          - IMAGE: '39'
+            CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt5'
+          - IMAGE: '39'
+            CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt6'
     container:
       image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_f${{ matrix.IMAGE }}
       env:
diff --git a/bend.cc b/bend.cc
index 1bfb7060e2a2ac243547345d535f99ddb142cb07..29cc1d4880bdf729eed7672600c56acc7bf24c91 100644 (file)
--- a/bend.cc
+++ b/bend.cc
 
 #include <cmath>            // macos wants abs from here!
 #include <cstdlib>          // for strtod, abs
+#include <utility>          // for as_const
 
 #include <QString>          // for QString
-#include <QtGlobal>         // for qAsConst, QAddConst<>::Type, foreach
+#include <QtGlobal>         // for QForeachContainer, qMakeForeachContainer, foreach
 
 #include "defs.h"
 #include "bend.h"
+#include "formspec.h"       // for FormatSpecificDataList
 #include "grtcirc.h"        // for RAD, heading_true_degrees, gcdist, linepart, radtometers, DEG
 
 
@@ -159,7 +161,7 @@ void BendFilter::process_route_orig(const route_head* route_orig)
 
 void BendFilter::process()
 {
-  for (const auto* route_orig : qAsConst(*routes_orig)) {
+  for (const auto* route_orig : std::as_const(*routes_orig)) {
     process_route_orig(route_orig);
   }
 }
index 252c068e9ebe27d9aa4374ce68c8e40286fa72f2..552b23faf6d1c3b3c7e2b77965c4f017a487168a 100644 (file)
 
 #include "duplicate.h"
 
+#include <utility>               // for as_const
+
 #include <QList>                 // for QList, QList<>::iterator, QList<>::const_iterator
 #include <QMultiHash>            // for QMultiHash
-#include <QtCore>                // for qAsConst
 
 #include "defs.h"
 
@@ -42,7 +43,7 @@ void DuplicateFilter::init()
 void DuplicateFilter::process()
 {
   QMultiHash<QString, Waypoint*> wpthash;
-  for (Waypoint* waypointp : qAsConst(*global_waypoint_list)) {
+  for (Waypoint* waypointp : std::as_const(*global_waypoint_list)) {
 
     QString key;
     if (lcopt) {
diff --git a/exif.cc b/exif.cc
index 2e0ba8289fce728e7d485a6514ced769a9fd5225..6521cbb644e6ccaade9beafa12f158568e66ec33 100644 (file)
--- a/exif.cc
+++ b/exif.cc
@@ -50,7 +50,7 @@
 #include <QVariant>             // for QVariant
 #include <QVector>              // for QVector
 #include <Qt>                   // for UTC, ISODate
-#include <QtGlobal>             // for qAsConst, qPrintable, qint64
+#include <QtGlobal>             // for qPrintable, qint64
 
 #include <algorithm>            // for sort, min
 #include <cassert>              // for assert
@@ -61,7 +61,7 @@
 #include <cstdio>               // for printf, SEEK_SET, snprintf, SEEK_CUR
 #include <cstdlib>              // for abs
 #include <cstring>              // for memcmp, strlen
-#include <type_traits>          // for add_const<>::type
+#include <utility>              // for as_const
 
 #include "defs.h"               // for Waypoint, fatal, warning, global_options, global_opts, unknown_alt, xfree, route_disp_all, track_disp_all, waypt_disp_all, wp_flags, KNOTS_TO_MPS, KPH_TO_MPS, MPH_TO_MPS, MPS_TO_KPH, WAYPT_HAS, case_ignore_strcmp, waypt_add, xstrdup, xstrndup, fix_2d
 #include "garmin_tables.h"      // for gt_lookup_datum_index
@@ -273,7 +273,7 @@ ExifFormat::exif_read_datestamp(const ExifTag* tag)
 void
 ExifFormat::exif_release_apps()
 {
-  for (auto* app : qAsConst(*exif_apps)) {
+  for (auto* app : std::as_const(*exif_apps)) {
     if (app->fcache) {
       gbfclose(app->fcache);
     }
@@ -1304,7 +1304,7 @@ ExifFormat::exif_write_apps() const
 {
   gbfputuint16(0xFFD8, fout_);
 
-  for (auto* app : qAsConst(*exif_apps)) {
+  for (auto* app : std::as_const(*exif_apps)) {
 
     gbfputuint16(app->marker, fout_);
 
index dd04edc424ac67e7c4999f21d589fffd926ce992..f6fd25dd6b4b4d37f0633d25796305c0a43fccb4 100644 (file)
--- a/garmin.cc
+++ b/garmin.cc
@@ -26,6 +26,7 @@
 #include <cstdlib>               // for strtol
 #include <cstring>               // for memcpy, strlen, strncpy, strchr
 #include <ctime>                 // for time_t
+#include <utility>               // for as_const
 
 #include <QByteArray>            // for QByteArray
 #include <QRegularExpression>    // for QRegularExpression
@@ -873,7 +874,7 @@ waypoint_prepare()
   i = 0;
 
   // Iterate with waypt_disp_all?
-  for (const Waypoint* wpt : qAsConst(*global_waypoint_list)) {
+  for (const Waypoint* wpt : std::as_const(*global_waypoint_list)) {
     char obuf[256];
 
     QString src;
index 8a6a1433f4432a6c87b16e27720026f575cb6b04..62efa8d601753350c88d51d9e9665689d46a8ce0 100644 (file)
@@ -34,7 +34,7 @@
 #include <cstring>                 // for strstr, strlen
 #include <ctime>                   // for time_t, gmtime, localtime, strftime
 #include <optional>                // for optional
-#include <utility>                 // for pair, make_pair
+#include <utility>                 // for as_const, pair, make_pair
 
 #include <QByteArray>              // for QByteArray
 #include <QChar>                   // for QChar, QChar::Other_Control
@@ -1041,7 +1041,7 @@ bind_fields(const header_type ht)
   const QStringList altheader = headers.at(ht).toUpper().split('\t');
 
   int i = -1;
-  for (const auto& name : qAsConst(header_column_names)) {
+  for (const auto& name : std::as_const(header_column_names)) {
     i++;
 
     int field_idx = altheader.indexOf(name);
diff --git a/gpx.cc b/gpx.cc
index 176ecc67625b304ebfb75d7c49a7c9af84140b0e..f8e0cebc38c6b4935f658d1b8efcf03d931e5781 100644 (file)
--- a/gpx.cc
+++ b/gpx.cc
 #include <cassert>                          // for assert
 #include <cmath>                            // for lround
 #include <cstdio>                           // for sscanf
+#include <cstdint>                          // for uint16_t
 #include <cstring>                          // for strchr, strncpy
+#include <optional>                         // for optional
+#include <utility>                          // for as_const
 
 #include <QByteArray>                       // for QByteArray
 #include <QDate>                            // for QDate
@@ -44,7 +47,6 @@
 #include <QXmlStreamNamespaceDeclarations>  // for QXmlStreamNamespaceDeclarations
 #include <QXmlStreamReader>                 // for QXmlStreamReader, QXmlStreamReader::Characters, QXmlStreamReader::EndDocument, QXmlStreamReader::EndElement, QXmlStreamReader::Invalid, QXmlStreamReader::StartElement
 #include <Qt>                               // for CaseInsensitive, UTC
-#include <QtGlobal>                         // for qAsConst, QAddConst<>::Type
 
 #include "defs.h"
 #include "garmin_fs.h"                      // for garmin_fs_t, garmin_ilink_t
@@ -1049,7 +1051,7 @@ GpxFormat::wr_init(const QString& fname)
   } else {
     if (gpx_global) {
       // TODO: gpx 1.1 copyright goes here
-      for (const auto& l : qAsConst(gpx_global->link)) {
+      for (const auto& l : std::as_const(gpx_global->link)) {
         writer->writeStartElement(QStringLiteral("link"));
         writer->writeAttribute(QStringLiteral("href"), l.url_);
         writer->writeOptionalTextElement(QStringLiteral("text"), l.url_link_text_);
index 0148c52fcfe55a6d96f9e7e13ab32ebbdf79c14d..f1367c1f2e6b7071882d9521586d5b7522e67e16 100644 (file)
 #include "interpolate.h"
 
 #include <climits>              // for INT_MAX
-#include <cmath>                // for abs, ceil, isfinite, round
+#include <cmath>                // for ceil, isfinite
 #include <cstdlib>              // for abs, strtod
 #include <optional>             // for optional
 
 #include <QString>              // for QString
-#include <QtGlobal>             // for qint64, qAsConst, qRound64
+#include <QtGlobal>             // for qint64, qRound64
 
 #include "defs.h"
 #include "grtcirc.h"            // for linepart, RAD, gcdist, radtomiles
index cbfd1f05ccd310f3681f9fcd1b343ab46f6c2b0e..6a06e1322b38e21e39d07e51fbe36caf82adb13a 100644 (file)
@@ -93,6 +93,7 @@
 #include <cstdint>              // for int64_t
 #include <cstdlib>              // for abs
 #include <cstring>              // for strcmp, strlen
+#include <utility>              // for as_const
 
 #include <QByteArray>           // for QByteArray
 #include <QDate>                // for QDate
 #include <QTextEncoder>         // for QTextEncoder
 #include <QTime>                // for QTime
 #include <Qt>                   // for CaseInsensitive, UTC
-#include <QtGlobal>             // for qPrintable, uint, qAsConst, QAddConst<>::Type
+#include <QtGlobal>             // for qPrintable, uint, QAddConst<>::Type
 
 #include "defs.h"
 #include "formspec.h"           // for FsChainFind, FsChainAdd, kFsLowranceusr4, FormatSpecificData
@@ -134,7 +135,7 @@ LowranceusrFormat::same_points(const Waypoint* A, const Waypoint* B)
 void
 LowranceusrFormat::register_waypt(const Waypoint* wpt) const
 {
-  for (const Waypoint* cmp : qAsConst(*waypt_table)) {
+  for (const Waypoint* cmp : std::as_const(*waypt_table)) {
     if (same_points(wpt, cmp)) {
       return;
     }
@@ -154,7 +155,7 @@ const Waypoint*
 LowranceusrFormat::lowranceusr4_find_waypt(uint uid_unit, int uid_seq_low, int uid_seq_high)
 {
   // Iterate with waypt_disp_all?
-  for (const Waypoint* waypointp : qAsConst(*global_waypoint_list)) {
+  for (const Waypoint* waypointp : std::as_const(*global_waypoint_list)) {
     const auto* fs = reinterpret_cast<lowranceusr4_fsdata*>(waypointp->fs.FsChainFind(kFsLowranceusr4));
 
     if (fs && fs->uid_unit == uid_unit &&
@@ -175,7 +176,7 @@ const Waypoint*
 LowranceusrFormat::lowranceusr4_find_global_waypt(uint id1, uint id2, uint id3, uint id4)
 {
   // Iterate with waypt_disp_all?
-  for (const Waypoint* waypointp : qAsConst(*global_waypoint_list)) {
+  for (const Waypoint* waypointp : std::as_const(*global_waypoint_list)) {
     const auto* fs = reinterpret_cast<lowranceusr4_fsdata*>(waypointp->fs.FsChainFind(kFsLowranceusr4));
 
     if (fs && fs->UUID1 == id1 &&
index 8bf839b417455dfa90fe63e310a8e44b5ca961f9..92b3416b452cff5f2eb37db3901ef58866b28bd8 100644 (file)
 
 #include <cassert>     // for assert
 #include <cctype>      // for isspace, isdigit
+#include <utility>     // for as_const
 
 #include <QByteArray>  // for QByteArray
 #include <QChar>       // for QChar, QChar::ReplacementCharacter
 #include <QString>     // for QString
 #include <QVector>     // for QVector
 #include <Qt>          // for CaseInsensitive
-#include <QtGlobal>    // for qAsConst
 
 #include "defs.h"
 #include "geocache.h"  // for Geocache
@@ -254,7 +254,7 @@ QByteArray MakeShort::mkshort(const QByteArray& istring, bool is_utf8)
      */
     QByteArray tstring;
     ostring.swap(tstring);
-    for (const auto ch : qAsConst(tstring)) {
+    for (const auto ch : std::as_const(tstring)) {
       if (!isspace(ch)) {
         ostring.append(ch);
       }
@@ -277,7 +277,7 @@ QByteArray MakeShort::mkshort(const QByteArray& istring, bool is_utf8)
   {
     QByteArray tstring;
     ostring.swap(tstring);
-    for (const auto ch : qAsConst(tstring)) {
+    for (const auto ch : std::as_const(tstring)) {
       if (badchars_.contains(ch)) {
         continue;
       }
index 9060b916c6a39873b700c733bc0e3b763c5b7e1f..a7275b84e75dce190851297dd19779f2f8ce15d3 100644 (file)
 #include "position.h"
 
 #include <cmath>                // for abs
-#include <cstdlib>              // for strtod
+#include <cstdlib>              // for strtod, abs
 
 #include <QList>                // for QList
-#include <QtGlobal>             // for qAsConst, qRound64, qint64
+#include <QtGlobal>             // for qRound64, qint64
 
 #include "defs.h"
 #include "src/core/datetime.h"  // for DateTime
index ce19ceb83935b18b1b0fcfbe7ab929a70204c299..5552790d2b33117b371399b9d44e27d0b19fbce4 100644 (file)
--- a/radius.cc
+++ b/radius.cc
 #include "radius.h"
 
 #include <cstdlib>          // for strtod
+#include <utility>          // for as_const
 
 #include <QString>          // for QString
-#include <QtGlobal>         // for qAsConst, QAddConst<>::Type, foreach
+#include <QtGlobal>         // QAddConst<>::Type, foreach
 
 #include "defs.h"           // for Waypoint, del_marked_wpts, route_add_head, route_add_wpt, waypt_add, waypt_sort, waypt_swap, xstrtoi, route_head, WaypointList, kMilesPerKilometer
 
@@ -73,7 +74,7 @@ void RadiusFilter::process()
   waypt_swap(comp);
 
   int i = 0;
-  for (Waypoint* wp : qAsConst(comp)) {
+  for (Waypoint* wp : std::as_const(comp)) {
     delete static_cast<extra_data*>(wp->extra_data);
     wp->extra_data = nullptr;
 
index a7eb97313d715da45e63045c630cc8ba6f89dfca..74a77d84a8898bd1acb11c5d80beca796529c13b 100644 (file)
 #include <cmath>                // for round
 #include <optional>             // for optional
 #include <tuple>                // for tuple, tuple_element<>::type
+#include <utility>              // for as_const
 
 #include <QDebug>               // for QDebug
 #include <QList>                // for QList<>::const_iterator
 #include <QString>              // for QString
 #include <QTextStream>          // for qSetRealNumberPrecision
-#include <QtGlobal>             // for qDebug, qAsConst, qint64
+#include <QtGlobal>             // for qDebug, qint64
 
 #include "defs.h"               // for Waypoint, route_head, fatal, WaypointList, track_add_wpt, track_disp_all, RouteList, track_add_head, track_del_wpt, track_swap, UrlList, gb_color, global_options, global_opts
 #include "src/core/datetime.h"  // for DateTime
@@ -88,7 +89,7 @@ void ResampleFilter::average_waypoint(Waypoint* wpt, bool zero_stuffed)
     }
     counter = 0;
     if (global_opts.debug_level >= 5) {
-      for (const auto& [pos, avc, alt] : qAsConst(history)) {
+      for (const auto& [pos, avc, alt] : std::as_const(history)) {
         qDebug() << "initial conditions" << pos << avc << alt;
       }
       qDebug() << "initial accumulator" << accumulated_position << accumulated_altitude_valid_count << accumulated_altitude;
index f0a17cc6e9d1b9453f79fc02438a3856f68be64e..f8fdd842202e2277be26b89de847dd81903e26ba 100644 (file)
--- a/route.cc
+++ b/route.cc
@@ -20,6 +20,7 @@
 #include <cassert>              // for assert
 #include <cstddef>              // for nullptr_t
 #include <optional>             // for optional, operator>, operator<
+#include <utility>              // for as_const
 
 #include <QDateTime>            // for operator>, QDateTime, operator<
 #include <QList>                // for QList<>::const_iterator
@@ -462,7 +463,7 @@ RouteList::del_marked_wpts(route_head* rte)
 
   // mimic trkseg handling from WaypointList::del_rte_waypt
   bool inherit_new_trkseg = false;
-  for (Waypoint* wpt : qAsConst(oldlist)) {
+  for (Waypoint* wpt : std::as_const(oldlist)) {
     if (wpt->wpt_flags.marked_for_deletion) {
       if (wpt->wpt_flags.new_trkseg) {
         inherit_new_trkseg = true;
diff --git a/tools/Dockerfile_f39 b/tools/Dockerfile_f39
new file mode 100644 (file)
index 0000000..5d89d17
--- /dev/null
@@ -0,0 +1,22 @@
+# this file is used to build the image gpsbabel_build_environment used by travis.
+
+FROM fedora:39
+
+LABEL maintainer="https://github.com/tsteven4"
+
+WORKDIR /app
+
+# basic tools to build
+RUN dnf install --assumeyes git make valgrind diffutils findutils langpacks-en ninja-build && \
+    dnf clean all
+# libraries used by gpsbabel.  zlib and shapelib may or may not be used depending qmake options.
+RUN dnf install --assumeyes libusb1-devel zlib-devel shapelib-devel && \
+    dnf clean all
+# Qt used by gpsbabel, gpsbabelfe
+RUN dnf install --assumeyes qt5-qtbase-devel qt5-qtserialport-devel qt5-qtwebengine-devel qt5-linguist qt5-qttranslations && \
+    dnf clean all
+RUN dnf install --assumeyes qt6-qtbase-devel qt6-qtserialport-devel qt6-qtwebengine-devel qt6-linguist qt6-qttranslations qt6-qt5compat-devel qt6-qttools-devel libxkbcommon-devel && \
+    dnf clean all
+# tools to build the docs
+RUN dnf install --assumeyes expat desktop-file-utils libxslt docbook-style-xsl fop docbook5-style-xsl docbook5-schemas && \
+    dnf clean all
index 1c3dd138496e52cda446157f3e2d73203b5dbbe6..7080324963267b84c00820d92863d89d31abf129 100644 (file)
@@ -30,6 +30,7 @@ static constexpr bool TRACKF_DBG = false;
 #include <cstring>                         // for strlen, strchr, strcmp
 #include <ctime>                           // for gmtime, strftime, time_t, tm
 #include <iterator>                        // for next
+#include <utility>                         // for as_const
 
 #include <QByteArray>                      // for QByteArray
 #include <QChar>                           // for QChar
@@ -41,7 +42,7 @@ static constexpr bool TRACKF_DBG = false;
 #include <QRegularExpressionMatch>         // for QRegularExpressionMatch
 #include <QString>                         // for QString
 #include <Qt>                              // for UTC, CaseInsensitive
-#include <QtGlobal>                        // for qAsConst, foreach, qPrintable, QAddConst<>::Type, qint64
+#include <QtGlobal>                        // for foreach, qPrintable, QAddConst<>::Type, qint64
 
 #include "defs.h"
 #include "trackfilter.h"
@@ -62,7 +63,7 @@ int TrackFilter::trackfilter_opt_count()
 {
   int res = 0;
 
-  for (const auto& arg : qAsConst(args)) {
+  for (const auto& arg : std::as_const(args)) {
     if (*arg.argval != nullptr) {
       res++;
     }
@@ -296,7 +297,7 @@ void TrackFilter::trackfilter_title()
   if (strlen(opt_title) == 0) {
     fatal(MYNAME "-title: Missing your title!\n");
   }
-  for (auto* track : qAsConst(track_list)) {
+  for (auto* track : std::as_const(track_list)) {
     trackfilter_pack_init_rte_name(track, QDateTime::fromMSecsSinceEpoch(0, Qt::UTC));
   }
 }
@@ -576,7 +577,7 @@ void TrackFilter::trackfilter_move()
 
   int timeless_points = 0;
 
-  for (auto* track : qAsConst(track_list)) {
+  for (auto* track : std::as_const(track_list)) {
     foreach (Waypoint* wpt, track->waypoint_list) {
       if (wpt->creation_time.isValid()) {
         wpt->creation_time = wpt->creation_time.addMSecs(delta);
@@ -607,7 +608,7 @@ void TrackFilter::trackfilter_synth()
 
   fix_type fix = trackfilter_parse_fix(&nsats);
 
-  for (auto* track : qAsConst(track_list)) {
+  for (auto* track : std::as_const(track_list)) {
     bool first = true;
     foreach (Waypoint* wpt, track->waypoint_list) {
       if (opt_fix) {
@@ -757,7 +758,7 @@ void TrackFilter::trackfilter_seg2trk()
 {
   if (!track_list.isEmpty()) {
     QList<route_head*> new_track_list;
-    for (auto* src : qAsConst(track_list)) {
+    for (auto* src : std::as_const(track_list)) {
       new_track_list.append(src);
       route_head* dest = src;
       route_head* insert_point = src;
@@ -871,7 +872,7 @@ void TrackFilter::trackfilter_faketime()
   assert(opt_faketime != nullptr);
   faketime_t faketime = trackfilter_faketime_check(opt_faketime);
 
-  for (auto* track : qAsConst(track_list)) {
+  for (auto* track : std::as_const(track_list)) {
     foreach (Waypoint* wpt, track->waypoint_list) {
 
       if (!wpt->creation_time.isValid() || faketime.force) {
index 679c19ad4683f2f411b6dd2149b345d212f94005..040908078fdb9cc3f76c0086169bf3981333b33a 100644 (file)
--- a/unicsv.cc
+++ b/unicsv.cc
@@ -24,6 +24,7 @@
 #include <cmath>                   // for fabs, lround
 #include <cstdio>                  // for NULL, sscanf
 #include <ctime>                   // for tm
+#include <utility>                 // for as_const
 
 #include <QByteArray>              // for QByteArray
 #include <QChar>                   // for QChar
@@ -207,7 +208,7 @@ UnicsvFormat::unicsv_parse_gc_code(const QString& str)
   }
 
   long long res = 0;
-  for (auto c : qAsConst(s)) {
+  for (auto c : std::as_const(s)) {
     int val = kBase31.indexOf(c);
     if (val < 0 || (base == 16 && val > 15)) {
       return 0;
diff --git a/util.cc b/util.cc
index c625e95d4884090d5f9f19a5f48841b8d1e84483..77e724979d0e6706890bcfe0684804327627647e 100644 (file)
--- a/util.cc
+++ b/util.cc
@@ -27,6 +27,7 @@
 #include <cstdio>                       // for size_t, vsnprintf, FILE, fopen, printf, sprintf, stderr, stdin, stdout
 #include <cstdlib>                      // for abs, calloc, free, malloc, realloc
 #include <cstring>                      // for strlen, strcat, strstr, memcpy, strcmp, strcpy, strdup, strchr, strerror
+#include <utility>                      // for as_const
 
 #include <QByteArray>                   // for QByteArray
 #include <QChar>                        // for QChar, operator<=, operator>=
@@ -41,7 +42,7 @@
 #include <Qt>                           // for CaseInsensitive
 #include <QTime>                        // for QTime
 #include <QTimeZone>                    // for QTimeZone
-#include <QtGlobal>                     // for qAsConst, qEnvironmentVariableIsSet, QAddConst<>::Type, qPrintable
+#include <QtGlobal>                     // for qEnvironmentVariableIsSet, QAddConst<>::Type, qPrintable
 
 #include "defs.h"
 #include "src/core/datetime.h"          // for DateTime
@@ -1033,7 +1034,7 @@ void list_timezones()
   };
   std::sort(zoneids.begin(), zoneids.end(), alpha);
   Warning() << "Available timezones are:";
-  for (const auto& id : qAsConst(zoneids)) {
+  for (const auto& id : std::as_const(zoneids)) {
     Warning() << id;
   }
 }
diff --git a/vecs.cc b/vecs.cc
index 944e863ab99229ded4eb89f7cf618b5b049b9d48..75238c8fc9559603dfcb3dc3dc9305d837b801df 100644 (file)
--- a/vecs.cc
+++ b/vecs.cc
 #include <QStringList>         // for QStringList
 #include <QVector>             // for QVector
 #include <Qt>                  // for CaseInsensitive
-#include <QtGlobal>            // for qPrintable, qAsConst
+#include <QtGlobal>            // for qPrintable
 
 #include <algorithm>           // for sort
 #include <cassert>             // for assert
 #include <cstdio>              // for printf, putchar, sscanf
-#include <type_traits>         // for add_const<>::type, is_base_of
+#include <type_traits>         // for is_base_of
+#include <utility>             // for as_const
 
 #include "defs.h"              // for arglist_t, ff_vecs_t, ff_cap, fatal, CSTR, ARGTYPE_TYPEMASK, case_ignore_strcmp, global_options, global_opts, warning, xfree, ARGTYPE_BOOL, ff_cap_read, ff_cap_write, ARGTYPE_HIDDEN, ff_type_internal, xstrdup, ARGTYPE_INT, ARGTYPE_REQUIRED, ARGTYPE_FLOAT
 #include "dg-100.h"            // for Dg100FileFormat, Dg100SerialFormat, Dg200FileFormat, Dg200SerialFormat
@@ -817,7 +818,7 @@ Vecs::fmtinfo_t Vecs::find_vec(const QString& fmtargstring)
    * Didn't find it in the table of "real" file types, so plan B
    * is to search the list of xcsv styles.
    */
-  for (const auto& svec : qAsConst(style_list)) {
+  for (const auto& svec : std::as_const(style_list)) {
     if (fmtname.compare(svec.name,  Qt::CaseInsensitive) != 0) {
       continue;
     }
index 77a219faa230cd8a760581fbb08fab7b36a9bccc..f7f0783b8d1d9cb2f081eab351a166cf732893e6 100644 (file)
--- a/waypt.cc
+++ b/waypt.cc
@@ -22,6 +22,7 @@
 #include <cassert>              // for assert
 #include <cmath>                // for fabs
 #include <cstdio>               // for fflush, fprintf, stdout
+#include <utility>              // for as_const
 
 #include <QChar>                // for QChar
 #include <QDateTime>            // for QDateTime
@@ -640,7 +641,7 @@ WaypointList::del_marked_wpts()
   WaypointList oldlist;
   swap(oldlist);
 
-  for (Waypoint* wpt : qAsConst(oldlist)) {
+  for (Waypoint* wpt : std::as_const(oldlist)) {
     if (wpt->wpt_flags.marked_for_deletion) {
       delete wpt;
     } else {
diff --git a/xcsv.cc b/xcsv.cc
index d649fff555c6622b83876fb50ca37a0b80b149fb..9123cf606ac18d720b1aec940abdbf40b85b5e71 100644 (file)
--- a/xcsv.cc
+++ b/xcsv.cc
@@ -33,6 +33,7 @@
 #include <cstring>                 // for strlen, strncmp, strcmp
 #include <ctime>                   // for gmtime, localtime, time_t, mktime, strftime
 #include <optional>                // for optional
+#include <utility>                 // for as_const
 
 #include <QByteArray>              // for QByteArray
 #include <QChar>                   // for QChar
@@ -46,7 +47,8 @@
 #include <QString>                 // for QString, operator+, operator==
 #include <QStringList>             // for QStringList
 #include <QTextStream>             // for QTextStream
-#include <QtGlobal>                // for qAsConst, qRound, qPrintable
+#include <Qt>                      // for CaseInsensitive
+#include <QtGlobal>                // for qRound, qPrintable
 
 #include "defs.h"
 #include "csv_util.h"              // for csv_stringtrim, dec_to_human, csv_stringclean, human_to_dec, ddmmdir_to_degrees, dec_to_intdeg, decdir_to_dec, intdeg_to_dec, csv_linesplit
@@ -850,7 +852,7 @@ XcsvFormat::read()
      * pre-read the file to know how many data lines we should be seeing,
      * we take this cheap shot at the data and cross our fingers.
      */
-    for (const auto& ogp : qAsConst(xcsv_style->epilogue)) {
+    for (const auto& ogp : std::as_const(xcsv_style->epilogue)) {
       if (ogp.startsWith(buff)) {
         buff.clear();
         break;
@@ -1040,7 +1042,7 @@ XcsvFormat::xcsv_waypt_pr(const Waypoint* wpt)
   }
 
   int i = 0;
-  for (const auto& fmp : qAsConst(xcsv_style->ofields)) {
+  for (const auto& fmp : std::as_const(xcsv_style->ofields)) {
     double lat = latitude;
     double lon = longitude;
     /*
@@ -1659,7 +1661,7 @@ XcsvFormat::write()
   waypt_out_count = 0;
 
   /* output prologue lines, if any. */
-  for (const auto& line : qAsConst(xcsv_style->prologue)) {
+  for (const auto& line : std::as_const(xcsv_style->prologue)) {
     QString line_to_write = xcsv_replace_tokens(line);
     xcsv_file->stream << line_to_write <<  xcsv_style->record_delimiter;
   }
@@ -1682,7 +1684,7 @@ XcsvFormat::write()
   }
 
   /* output epilogue lines, if any. */
-  for (const auto& line : qAsConst(xcsv_style->epilogue)) {
+  for (const auto& line : std::as_const(xcsv_style->epilogue)) {
     QString line_to_write = xcsv_replace_tokens(line);
     xcsv_file->stream << line_to_write << xcsv_style->record_delimiter;
   }